//
//  NewCanPinMsgModel.m
//  FD
//
//  Created by xiaofang wang on 2018/11/21.
//  Copyright © 2018年 ZhiYuan Network. All rights reserved.
//  11-21新餐品信息

#import "NewCanPinMsgBigModel.h"

@implementation NewCanPinMsgBigModel
+ (NSDictionary *)mj_replacedKeyFromPropertyName {
    return @{@"goodsId":@"id"};
}

#pragma mark - 单独转换

- (CGFloat)price {
    
    CGFloat sum = 0.0;//总金额
    //初始金额
    NSNumber *originalPrice = self.goods[@"originalPrice"];
    
    sum += [originalPrice floatValue];
    
    //循环便利取出所 ingredientClassify
    NSArray *ingredientArr = self.goods[@"ingredientClassify"];
    
    //第一次遍历
    for (NSDictionary *dic1 in ingredientArr) {
        //2019-1-3新增字段free:0 表示前几个不要钱,free:0都要钱; free:1前一个不要钱; free:2前2个不要钱。
        //思路:用一个空的可变数组装ingredientList数组;n不为0,前n个,有几个就移除几个
        NSArray *innerListArr = dic1[@"ingredientList"];
        NSMutableArray *tempArrM  = [NSMutableArray arrayWithArray:innerListArr];
        
        //判断前几个免费: 不计算累加和
        NSNumber *free  = dic1[@"free"];
        int freeInt = abs([free intValue]); //取绝对值 //确保不能出现负数.
        
        //不为空
        //分情况讨论
        //0:全都要钱
        //>=数组个数, 都不要钱
        // <数组的个数 前几个不要钱
        
        if (freeInt >= tempArrM.count) { //都不要钱
            continue;
        }
        
        //freeInt的个数 < 数组的个数、前 freeInt个不要钱,不计算在总价内。
        if (freeInt && freeInt < tempArrM.count) {
            [tempArrM removeObjectsInRange:NSMakeRange(0, freeInt)];
        }
        
        
        //剩下的都是要钱的。
        //第二次遍历 tempArrM
        for (NSDictionary *innerDic in tempArrM) {
            NSNumber *innerPrice = innerDic[@"currentPrice"]; //取出所有单价
            sum += [innerPrice floatValue];
        }
    }
    return sum;
}


- (NSString *)bigTitle {
    NSString *titleStr = self.goods[@"title"];
    
    return titleStr;
}



#pragma mark - 2019-1-3拼接cell数据 单独计算
- (NSArray <NewCanPinMsgModel *>*)cellRowArr {
    //xxx: xx1、xxx2、xx3、xx4;
    
    //1.遍历goods字典
    NSDictionary *goodsDic = self.goods;
    //外层数组:ingredientClassify
    //内部一个一个的dic
    //第二层嵌套数组:ingredientList 里面装的是dic
    //最终的目标是。取出里面的dic 的 name进行拼接
    
    NSString *resultString = @""; //目标字符串
    
    //第一层数组
    NSArray *firstLevelArr = goodsDic[@"ingredientClassify"];
    
    if (!firstLevelArr.count) {
        FDLog(@"如果数组是空的直接返回");
        return @[];
    }
    
    for (NSDictionary *firstDic in firstLevelArr) {
      resultString = [resultString stringByAppendingFormat:@"%@:  ",firstDic[@"name"]]; //xxx:
        //设置空格
        
        //第二层嵌套数组
        NSArray *secondArr = firstDic[@"ingredientList"];
        
        //第二层目标字符串
        NSString *secondResultString = @"";
        
        NSMutableArray *tempArrM = @[].mutableCopy; //装secDic[@"name"];
        for (NSDictionary *secDic in secondArr) {
            [tempArrM addObject:secDic[@"name"]];
        }
        
        //使用 、将数组中的字符串进行拼接
        secondResultString = [tempArrM componentsJoinedByString:@"、"];
        
        //拼接到目标字符串上, 末尾处还要拼接上换行符号 \n
        resultString = [resultString stringByAppendingFormat:@"%@\n",secondResultString];
    }
    
    
    //拼接备注
    //备注单独拼接:有才进行拼接,备注:xxxx, 无不做处理。
    if (![NSString isEmptyString:self.remark]) {
        NSString *bzStr = NSLocalizedString(Order_Remark, @"备注");
        resultString = [resultString stringByAppendingFormat:@"%@:  %@",bzStr,self.remark];
        //中间用空格
    }
    
    //给model设置,在放大到数中返回。
    NewCanPinMsgModel *model = [[NewCanPinMsgModel alloc] init];
    model.name = resultString;
    NSArray *arr = @[model];
//    FDLog(@"======:%@",resultString);
    return arr;
}
@end
